// @ts-nocheck
const http = require('http');
const fs = require('fs');
const path = require('path');
const url = require('url');

// 创建HTTP服务器
const server = http.createServer((req, res) => {
	// 设置响应头以允许跨域请求
	res.setHeader('Access-Control-Allow-Origin', '*'); // 允许所有来源
	res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS'); // 允许的方法
	res.setHeader('Access-Control-Allow-Headers', 'Content-Type'); // 允许的头部
	// 获取请求的URL路径
	const parsedUrl = url.parse(req.url, true);
	let pathname = parsedUrl.pathname;
	const query = parsedUrl.query;
	if (pathname === '/') {
		pathname = "index.html"
	}

	const purl = "/" + pathname;
	// 根据URL路径构建本地文件路径
	const filePath = path.join(__dirname, purl);
	// console.log(filePath,__dirname,url)
	// 检查文件是否存在
	fs.access(filePath, fs.constants.F_OK, (err) => {
		if (err) {
			// 文件不存在，返回404 Not Found
			res.statusCode = 404;
			res.end('404 Not Found');

			return;
		}

		// 读取文件内容并返回给客户端
		fs.readFile(filePath, (err, data) => {
			if (err) {
				// 读取文件出错，返回500 Internal Server Error
				res.statusCode = 500;
				res.end('Internal Server Error');

				return;
			}

			// 设置响应头，指定返回的内容类型为text/html
			res.setHeader('Content-Type', 'text/html');
			// 返回文件内容
			res.end(data);
		});
	});
});

// 监听端口并启动服务器
const port = 8080;
server.listen(port, () => {
	console.log(`Server running at http://localhost:${port}/`);
});